package cn.com.open.itembank.dto;

import cn.com.open.itembank.common.enums.DifficultyType;

/**
 * Created by lucky on 2017/12/14.
 */
public class SectionCategoryDifficultyCountModel {
    /**
     * 索引.
     */
    private String index;
    /**
     * 题目类型id.
     */
    private String questionTypeId;
    /**
     * 题目类型名称.
     */
    private String questionTypeName;
    /**
     * 应用类别id.
     */
    private String categoryIds;
    /**
     * 应用类别名称.
     */
    private String categoryNames;
    /**
     * 难度类型.
     */
    private DifficultyType difficultyType;
    /**
     * 子试题数量
     */
    private Integer subItemCount;
    /**
     * 系统拥有题量.
     */
    private Integer dbCount;
    /**
     * 用户需要题量.
     */
    private double userNeedCount;
    /**
     * 例题题量.
     */
    private Integer exampleCount;
    /**
     * 必选题数量.
     */
    private Integer mandatoryCount;

    /**
     * Gets index.
     *
     * @return the index
     */
    public String getIndex() {
        return index;
    }

    /**
     * Sets index.
     *
     * @param index the index
     */
    public void setIndex(String index) {
        this.index = index;
    }

    /**
     * Gets question type id.
     *
     * @return the question type id
     */
    public String getQuestionTypeId() {
        return questionTypeId;
    }

    /**
     * Sets question type id.
     *
     * @param questionTypeId the question type id
     */
    public void setQuestionTypeId(String questionTypeId) {
        this.questionTypeId = questionTypeId;
    }


    /**
     * Gets question type name.
     *
     * @return the question type name
     */
    public String getQuestionTypeName() {
        return questionTypeName;
    }

    /**
     * Sets question type name.
     *
     * @param questionTypeName the question type name
     */
    public void setQuestionTypeName(String questionTypeName) {
        this.questionTypeName = questionTypeName;
    }

    /**
     * Gets category id.
     *
     * @return the category id
     */
    public String getCategoryIds() {
        return categoryIds;
    }

    /**
     * Sets category id.
     *
     * @param categoryIds the category id
     */
    public void setCategoryIds(String categoryIds) {
        this.categoryIds = categoryIds;
    }

    /**
     * Gets category names.
     *
     * @return the category names
     */
    public String getCategoryNames() {
        return categoryNames;
    }

    /**
     * Sets category names.
     *
     * @param categoryNames the category names
     */
    public void setCategoryNames(String categoryNames) {
        this.categoryNames = categoryNames;
    }

    /**
     * Gets difficulty type.
     *
     * @return the difficulty type
     */
    public DifficultyType getDifficultyType() {
        return difficultyType;
    }

    /**
     * Sets difficulty type.
     *
     * @param difficultyType the difficulty type
     */
    public void setDifficultyType(DifficultyType difficultyType) {
        this.difficultyType = difficultyType;
    }

    /**
     * Gets db count.
     *
     * @return the db count
     */
    public Integer getDbCount() {
        return dbCount;
    }

    /**
     * Sets db count.
     *
     * @param dbCount the db count
     */
    public void setDbCount(Integer dbCount) {
        this.dbCount = dbCount;
    }

    /**
     * Gets user need count.
     *
     * @return the user need count
     */
    public double getUserNeedCount() {
        return userNeedCount;
    }

    /**
     * Sets user need count.
     *
     * @param userNeedCount the user need count
     */
    public void setUserNeedCount(double userNeedCount) {
        this.userNeedCount = userNeedCount;
    }

    /**
     * Gets result count.
     *
     * @return the result count
     */
    public Integer getExampleCount() {
        return exampleCount;
    }

    /**
     * Sets result count.
     *
     * @param exampleCount the result count
     */
    public void setExampleCount(Integer exampleCount) {
        this.exampleCount = exampleCount;
    }


    /**
     * Gets mandatory count.
     *
     * @return the mandatory count
     */
    public Integer getMandatoryCount() {
        return mandatoryCount;
    }

    /**
     * Sets mandatory count.
     *
     * @param mandatoryCount the mandatory count
     */
    public void setMandatoryCount(Integer mandatoryCount) {
        this.mandatoryCount = mandatoryCount;
    }

    /**
     * Gets sub item count.
     *
     * @return the sub item count
     */
    public Integer getSubItemCount() {
        return subItemCount;
    }

    /**
     * Sets sub item count.
     *
     * @param subItemCount the sub item count
     */
    public void setSubItemCount(Integer subItemCount) {
        this.subItemCount = subItemCount;
    }

    /**
     * Instantiates a new Section category difficulty count model.
     *
     * @param index            the index
     * @param questionTypeId   the question type id
     * @param questionTypeName the question type name
     * @param categoryIds      the category ids
     * @param difficultyType   the difficulty type
     * @param userNeedCount    the user need count
     * @param categoryNames    the category names
     * @param subItemCount     the sub item count
     */
    public SectionCategoryDifficultyCountModel(String index, String questionTypeId, String questionTypeName, String categoryIds,
                                               DifficultyType difficultyType, double userNeedCount, String categoryNames, Integer subItemCount) {
        this.index = index;
        this.questionTypeId = questionTypeId;
        this.questionTypeName = questionTypeName;
        this.categoryIds = categoryIds;
        this.categoryNames = categoryNames;
        this.difficultyType = difficultyType;
        this.dbCount = 0;
        this.userNeedCount = userNeedCount;
        this.exampleCount = 0;
        this.mandatoryCount = 0;
        this.subItemCount = subItemCount;
    }

    /**
     * Instantiates a new Section category difficulty count model.
     */
    public SectionCategoryDifficultyCountModel() {

    }
}
